home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / gnu / gmp_1_3_.gz / gmp_1_3_ / gmp-1.3.2 / Makefile < prev    next >
Makefile  |  1993-05-19  |  14KB  |  290 lines

  1. # Makefile for GNU MP (a.k.a. biGNUm)
  2. # Copyright (C) 1991, 1993 Free Software Foundation, Inc.
  3.  
  4. # This file is part of the GNU MP Library.
  5.  
  6. # The GNU MP Library is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2, or (at your option)
  9. # any later version.
  10.  
  11. # The GNU MP Library is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15.  
  16. # You should have received a copy of the GNU General Public License
  17. # along with the GNU MP Library; see the file COPYING.  If not, write to
  18. # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  
  20. CC = gcc
  21.  
  22. # If you cross compile on a machine with the same sizes of the integral
  23. # types ("int", "long int", "short int", and "char") define this as the
  24. # local compiler.  Otherwise, you need look for the uses of LOCAL_CC below,
  25. # and handle those cases manually.
  26. LOCAL_CC = $(CC)
  27. OPT = -O -g
  28. CFLAGS = -I. $(OPT)
  29. AR = ar
  30. RANLIB=`if [ -r /bin/ranlib -o -r /usr/bin/ranlib ]; \
  31.     then echo ranlib; else echo true; fi`
  32. SHELL = /bin/sh
  33.  
  34. SRCS = $(MPZ_SRCS) $(MPQ_SRCS) $(BSDMP_SRCS) $(MPN_SRCS) $(IMPL_SRCS)
  35. OBJS = $(MPZ_OBJS) $(MPQ_OBJS) $(BSDMP_OBJS) $(MPN_OBJS) $(IMPL_OBJS)
  36.  
  37. MP_OBJS = $(BSDMP_OBJS) $(MPN_OBJS) $(IMPL_OBJS) mp_bases.o mpz_sizeinb.o
  38. GMP_OBJS = $(MPZ_OBJS) $(MPQ_OBJS) $(MPN_OBJS) $(IMPL_OBJS) mp_bases.o
  39.  
  40. IMPL_SRCS = memory.c mp_set_fns.c _mpz_set_str.c _mpz_get_str.c \
  41.   mpz_realloc.c mp_clz_tab.c alloca.c
  42. IMPL_OBJS = memory.o mp_set_fns.o _mpz_set_str.o _mpz_get_str.o \
  43.   mpz_realloc.o mp_clz_tab.o alloca.o
  44.  
  45. MPZ_SRCS = mpz_init.c mpz_set.c mpz_set_ui.c mpz_set_si.c mpz_set_str.c \
  46.   mpz_iset.c mpz_iset_ui.c mpz_iset_si.c mpz_iset_str.c mpz_clear.c \
  47.   mpz_get_ui.c mpz_get_si.c mpz_get_str.c mpz_size.c mpz_sizeinb.c \
  48.   mpz_add.c mpz_add_ui.c mpz_sub.c mpz_sub_ui.c mpz_mul.c mpz_mul_ui.c \
  49.   mpz_div.c mpz_div_ui.c mpz_mod.c mpz_mod_ui.c mpz_dm.c mpz_dm_ui.c \
  50.   mpz_mdiv.c mpz_mmod.c mpz_mdm.c mpz_mdiv_ui.c mpz_mmod_ui.c mpz_mdm_ui.c \
  51.   mpz_gcd.c mpz_gcdext.c mpz_sqrt.c mpz_sqrtrem.c mpz_powm.c mpz_powm_ui.c \
  52.   mpz_cmp.c mpz_cmp_ui.c mpz_cmp_si.c mpz_mul_2exp.c mpz_div_2exp.c \
  53.   mpz_mod_2exp.c mpz_abs.c mpz_neg.c mpz_com.c mpz_and.c mpz_ior.c \
  54.   mpz_inp_raw.c mpz_inp_str.c mpz_out_raw.c mpz_out_str.c \
  55.   mpz_perfsqr.c mpz_random.c mpz_random2.c mpz_pow_ui.c \
  56.   mpz_clrbit.c mpz_fac_ui.c mpz_pprime_p.c
  57. MPZ_OBJS = mpz_init.o mpz_set.o mpz_set_ui.o mpz_set_si.o mpz_set_str.o \
  58.   mpz_iset.o mpz_iset_ui.o mpz_iset_si.o mpz_iset_str.o mpz_clear.o \
  59.   mpz_get_ui.o mpz_get_si.o mpz_get_str.o mpz_size.o mpz_sizeinb.o \
  60.   mpz_add.o mpz_add_ui.o mpz_sub.o mpz_sub_ui.o mpz_mul.o mpz_mul_ui.o \
  61.   mpz_div.o mpz_div_ui.o mpz_mod.o mpz_mod_ui.o mpz_dm.o mpz_dm_ui.o \
  62.   mpz_mdiv.o mpz_mmod.o mpz_mdm.o mpz_mdiv_ui.o mpz_mmod_ui.o mpz_mdm_ui.o \
  63.   mpz_gcd.o mpz_gcdext.o mpz_sqrt.o mpz_sqrtrem.o mpz_powm.o mpz_powm_ui.o \
  64.   mpz_cmp.o mpz_cmp_ui.o mpz_cmp_si.o mpz_mul_2exp.o mpz_div_2exp.o \
  65.   mpz_mod_2exp.o mpz_abs.o mpz_neg.o mpz_com.o mpz_and.o mpz_ior.o \
  66.   mpz_inp_raw.o mpz_inp_str.o mpz_out_raw.o mpz_out_str.o \
  67.   mpz_perfsqr.o mpz_random.o mpz_random2.o mpz_pow_ui.o \
  68.   mpz_clrbit.o mpz_fac_ui.o mpz_pprime_p.o
  69.  
  70. MPQ_SRCS = mpq_init.c mpq_set.c mpq_set_ui.c mpq_set_si.c \
  71.   mpq_set_num.c mpq_set_den.c mpq_get_num.c mpq_get_den.c \
  72.   mpq_add.c mpq_sub.c mpq_mul.c mpq_div.c \
  73.   mpq_clear.c mpq_cmp.c mpq_inv.c mpq_neg.c
  74. MPQ_OBJS = mpq_init.o mpq_set.o mpq_set_ui.o mpq_set_si.o \
  75.   mpq_set_num.o mpq_set_den.o mpq_get_num.o mpq_get_den.o \
  76.   mpq_add.o mpq_sub.o mpq_mul.o mpq_div.o \
  77.   mpq_clear.o mpq_cmp.o mpq_inv.o mpq_neg.o
  78.  
  79. MPN_SRCS = mpn_add.c mpn_sub.c mpn_cmp.c mpn_mul.c mpn_div.c mpn_dm_1.c \
  80.   mpn_mod_1.c mpn_lshift.c mpn_rshift.c mpn_rshiftci.c mpn_sqrt.c
  81. MPN_OBJS = mpn_add.o mpn_sub.o mpn_cmp.o mpn_mul.o mpn_div.o mpn_dm_1.o \
  82.   mpn_mod_1.o mpn_lshift.o mpn_rshift.o mpn_rshiftci.o mpn_sqrt.o
  83.  
  84. # There are fewer members in the BSDMP_SRCS list that in the BSDMP_OBJS
  85. # list because some of the .c files are created by this Makefile.
  86. BSDMP_SRCS = itom.c mdiv.c move.c mtox.c xtom.c sdiv.c mout.c min.c mfree.c
  87. BSDMP_OBJS = gcd.o itom.o madd.o mcmp.o mdiv.o move.o msub.o mtox.o mult.o \
  88.   pow.o rpow.o xtom.o msqrt.o sdiv.o mout.o min.o mfree.o
  89.  
  90. all: libgmp.a libmp.a
  91.  
  92. check: libgmp.a
  93.     cd tests; $(MAKE) CC="$(CC)" SHELL="$(SHELL)" OPT="$(OPT)"
  94.  
  95. libgmp.a: stamp-stddefh $(GMP_OBJS)
  96.     rm -f $@
  97.     $(AR) cr $@ $(GMP_OBJS)
  98.     $(RANLIB) $@
  99.  
  100. # libmp.a depend on libgmp.a, to get around Unix(tm) ar/ranlib concurrency bug.
  101. libmp.a: stamp-stddefh $(MP_OBJS) libgmp.a
  102.     rm -f $@
  103.     $(AR) cr $@ $(MP_OBJS)
  104.     $(RANLIB) $@
  105.  
  106. stamp-stddefh:
  107.     rm -f stddef.h
  108.     rm -f test-stddefh.c
  109.     (    echo '#include <stddef.h>'                ;\
  110.         echo 'main(){size_t foo=sizeof(size_t);exit(0);}'    ;\
  111.     ) > test-stddefh.c
  112.     @if $(LOCAL_CC) $(CFLAGS) test-stddefh.c -c 2> /dev/null    ;\
  113.     then true                            ;\
  114.     else                                \
  115.       echo 'This machine has no "stddef.h".  Creating a minimal in ./';\
  116.       $(LOCAL_CC) $(CFLAGS) cre-stddefh.c -o cre-stddefh        ;\
  117.       ./cre-stddefh > stddef.h                    ;\
  118.     fi
  119.     rm -f test-stddefh.o
  120.     touch stamp-stddefh
  121.  
  122. mp_bases.c: cre-conv-tab
  123.     ./cre-conv-tab > tmp-$@
  124.     mv tmp-$@ $@
  125. cre-conv-tab: cre-conv-tab.c gmp.h gmp-impl.h gmp-mparam.h longlong.h
  126.     $(LOCAL_CC) $(CFLAGS) `if [ x$(firstword $^) = x ];    \
  127.                    then echo cre-conv-tab.c;    \
  128.                    else echo $(firstword $^); fi` -o $@ -lm
  129.  
  130. gmp-mparam.h: cre-mparam
  131.     ./cre-mparam > tmp-$@
  132.     mv tmp-$@ $@
  133. cre-mparam: cre-mparam.c stamp-stddefh gmp.h
  134.     $(LOCAL_CC) $(CFLAGS) cre-mparam.c -o $@
  135.  
  136. gcd.c : mpz_gcd.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h longlong.h 
  137.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz_gcd.c \
  138.           | grep -v '^#' > $@
  139. pow.c : mpz_powm.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h longlong.h 
  140.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz_powm.c\
  141.           | grep -v '^#' > $@
  142. rpow.c: mpz_pow_ui.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h longlong.h 
  143.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz_pow_ui.c\
  144.           | grep -v '^#' > $@
  145. madd.c : mpz_add.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  146.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz_add.c\
  147.           | grep -v '^#' > $@
  148. msub.c : mpz_sub.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  149.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz_sub.c\
  150.           | grep -v '^#' > $@
  151. mult.c : mpz_mul.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  152.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz_mul.c\
  153.           | grep -v '^#' > $@
  154. mcmp.c : mpz_cmp.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  155.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz_cmp.c\
  156.           | grep -v '^#' > $@
  157. msqrt.c : mpz_sqrtrem.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  158.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz_sqrtrem.c\
  159.           | grep -v '^#' > $@
  160.  
  161. doc: gmp.dvi gmp.info
  162. LN = ln -s
  163. gmp.dvi: gmp.texi
  164.     rm -f tmp.texi
  165.     $(LN) gmp.texi tmp.texi
  166.     tex tmp.texi < /dev/null
  167.     texindex tmp.cp tmp.fn
  168.     tex tmp.texi < /dev/null 2> /dev/null
  169.     mv tmp.dvi gmp.dvi
  170. gmp.info: gmp.texi
  171.     makeinfo gmp.texi
  172.  
  173. clean:
  174.     rm -f *.o libgmp.a libmp.a cre-conv-tab cre-mparam cre-stddefh \
  175.  gmp.dvi gmp.info mp_bases.c gmp-mparam.h stamp-stddefh test-stddefh.c \
  176.  stddef.h gcd.c pow.c rpow.c madd.c msub.c mult.c mcmp.c msqrt.c \
  177.  tmp.* tmp-* gmp.ps core
  178.     -cd tests; $(MAKE) clean
  179. realclean: clean
  180.  
  181. # Automatically generated dependencies
  182.  
  183. _mpz_get_str.o : _mpz_get_str.c gmp.h gmp-impl.h gmp-mparam.h longlong.h 
  184. _mpz_set_str.o : _mpz_set_str.c gmp.h gmp-impl.h gmp-mparam.h longlong.h 
  185. cre-conv-tab.o : cre-conv-tab.c gmp.h gmp-impl.h gmp-mparam.h longlong.h 
  186. cre-mparam.o : cre-mparam.c gmp.h 
  187. cre-stddefh.o : cre-stddefh.c 
  188. itom.o : itom.c mp.h gmp.h gmp-impl.h gmp-mparam.h 
  189. mdiv.o : mdiv.c mp.h gmp.h gmp-impl.h gmp-mparam.h longlong.h mpz_dmincl.c 
  190. memory.o : memory.c gmp.h gmp-impl.h gmp-mparam.h 
  191. mfree.o : mfree.c mp.h gmp.h gmp-impl.h gmp-mparam.h 
  192. min.o : min.c mp.h gmp.h gmp-impl.h gmp-mparam.h 
  193. mout.o : mout.c mp.h gmp.h gmp-impl.h gmp-mparam.h 
  194. move.o : move.c mp.h gmp.h gmp-impl.h gmp-mparam.h 
  195. mp_bases.o : mp_bases.c gmp.h gmp-impl.h gmp-mparam.h 
  196. mp